#ifndef UTILS_H
#define UTILS_H

#include <stdint.h>
#include <stddef.h>
#include "cJSON.h"

// "AA:BB:CC:DD:EE:FF" -> 6 字节数组
void mac_str_to_bytes(const char *mac_str, uint8_t *mac_bytes);

// 从 cJSON 获取 int
int cjson_get_int(cJSON *root, const char *key);
int cjson_get_int_with_default(cJSON *root, const char *key, int default_value);

// 从 cJSON 获取 float
float cjson_get_float(cJSON *root, const char *key);
float cjson_get_float_with_default(cJSON *root, const char *key, float default_value);

// 从 cJSON 获取 bool
bool cjson_get_bool(cJSON *root, const char *key);
bool cjson_get_bool_with_default(cJSON *root, const char *key, bool default_value);

// 从 cJSON 获取 string
const char *cjson_get_str(cJSON *root, const char *key);
const char *cjson_get_str_with_default(cJSON *root, const char *key, const char *default_value);

// 生成 msgId（时间戳字符串）
void generate_msgId(char *msgId_str, size_t len);

#endif // UTILS_H
